import { ApiProperty } from '@midwayjs/swagger'

import { BaseVO } from './base.vo'

/**
 * 菜单结果
 */
export class MenuVO extends BaseVO implements Omit<ISysMenuEntity, 'roles'> {
  @ApiProperty({ description: '主键' })
  menuId: string

  @ApiProperty({ description: '菜单名称' })
  menuName: string

  @ApiProperty({ description: '上级主键' })
  parentId: string

  @ApiProperty({ description: '显示顺序' })
  orderNum: number

  @ApiProperty({ description: '路由地址' })
  path: string

  @ApiProperty({ description: '组件路径' })
  component: string

  @ApiProperty({ description: '路由重定向地址' })
  redirect: string

  @ApiProperty({ description: '是否为外链' })
  isFrame: number

  @ApiProperty({ description: '是否缓存' })
  isCache: number

  @ApiProperty({ description: '菜单类型' })
  menuType: string

  @ApiProperty({ description: '菜单状态' })
  visible: string

  @ApiProperty({ description: '菜单状态' })
  status: string

  @ApiProperty({ description: '权限标识' })
  perms: string

  @ApiProperty({ description: '菜单图标' })
  icon: string

  @ApiProperty({ description: '备注' })
  remark: string
}
